
# 面向对象-多态

"""
说明 ：
    1. 必须是继承关系
    2. 子类的方法要复写父类的方法 。
        复写 ：
            （1） 方法名相同
            （2） 子类的参数大于等于父类的参数


多态的使用场景 ：
    1. 在父类中的功能已经无法满足子类的需求 。

开闭原则 ：
1. 对调用出进行关闭 ，关闭调用者的修改
2. 对实现着来说进行开发 ，可以进行需求变更，从而保证代码的扩展性。
"""

class Test():

    def __init__(self):
        self.mod_data = []

    # 设置模块
    def set_module(self,mod_name):
        self.mod_data.append(mod_name)

    # 查看模块
    def get_module(self):
        return self.mod_data

    # 搜索
    def search(self):
        print("需要搜索具体的内容")


class Bugs(Test):

    def search(self):
        return [{'bug_id':1,'bug_title':'学员列表页按照学生名称进行搜索 结果不正确'}]

class Cases(Test):

    def search(self):
        return [{'case_id':1,'case_title':'学员列表页按照学生名称进行搜索 结果不正确'}]

# 新增了一个需求 ： 新增一个测试报告
class Report(Test):
    def search(self):
        return [{'report_id':1,'report_title':'学员列表页按照学生名称进行搜索 结果不正确'}]


# 调用者
def search_data(test):
    result = test.search()
    return result

# 调用查询bug的数据
print(search_data(Bugs()))

# 查询测试用例数据
print(search_data(Cases()))

# 查询测试报告的数据
print(search_data(Report()))